
# pip install scanpy anndata
# pip install --upgrade numpy scipy pandas scanpy anndata
import scanpy as sc
datafile = r"F:\数据集\a82c2cd1-9b0a-4975-af9b-e21d2435432e.h5ad"

# 直接读取完整路径
adata = sc.read_h5ad(datafile)

# ========== 提取子集用于调试 ==========
# 方法1：取前 n 个细胞（cells）进行调试
n_cells_subset = 300  # 根据你的内存和速度需求调整
adata_subset = adata[:n_cells_subset, :].copy()  # 取前 n 个细胞，所有基因

# 可选：进一步限制基因数量（比如高变基因前 1000）
# sc.pp.highly_variable_genes(adata_subset, n_top_genes=1000)
# adata_subset = adata_subset[:, adata_subset.var['highly_variable']].copy()

# 方法2：也可以随机抽样（更推荐用于代表性）
# import numpy as np
# np.random.seed(0)
# cells_sample = np.random.choice(adata.obs_names, size=n_cells_subset, replace=False)
# adata_subset = adata[cells_sample, :].copy()

# ========== 保存子集到本地，方便后续快速加载调试 ==========
subset_path = datafile.replace(".h5ad", "-subset.h5ad")
adata_subset.write(subset_path)
print(f"子集已保存至: {subset_path}")

# ========== 后续调试可以直接加载这个小文件 ==========
# adata = sc.read_h5ad(subset_path)